﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CoVanHocTapData.Entities;
using System.Xml.Linq;
using System.Xml;
using System.Text.RegularExpressions;
using System.IO;
using System.Web.Hosting;
using CoVanHocTapData.Interface;
using CoVanHocTapData.Concretes;
using CoVanHocTapProject.Infrastructure;
using System.Data;
using System.ComponentModel;
using System.Web.UI;

using System.Collections;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using CoVanHocTapData.Infrastructure;


namespace CoVanHocTapProject.Controllers
{
    
    public class AdminController : Controller
    {
        #region repos
        IChuanDauRaRepository chuanDauRaRepos = new ChuanDauRaRepository();
        IHeDaoTaoRepository heDaoTaoRepos = new HeDaoTaoRepository();
        INganhRepository nganhRepos = new NganhDaoTaoRepository();
        INienKhoaRepository nienKhoaRepos = new NienKhoaRepository();
        IMonHocRepository monHocRepos = new MonHocRepository();
        IQuyDinhLuanVan_TTTNRepository qDinhLV_TTTNRepos = new QuyDinhLuanVan_TTTNRepository();
        #endregion

        public ActionResult Index()
        {
            return View();
        }

        #region tao quy dinh chuan dau ra
        static QuyDinhChuanDauRa_LV_TTTN quyDinh = new QuyDinhChuanDauRa_LV_TTTN();
        public ActionResult TaoQuyDinhChuanDauRa()
        {
            if (Publics.adminDangNhap == null)
                return RedirectToAction("Index","TrangChu_Admin");
                        

            //tao chuan dau ra
            quyDinh.HeDaoTaoList = new List<SelectListItem>();
            var heDaoTaoList = heDaoTaoRepos.LayTatCaHeDaoTao();
            foreach (var heDaoTaoItem in heDaoTaoList)
            {
                SelectListItem item = new SelectListItem()
                {
                    Text = heDaoTaoItem.TenHe,
                    Value = heDaoTaoItem.HeDaoTaoID
                };
                quyDinh.HeDaoTaoList.Add(item);
            }
            quyDinh.NganhList = new List<SelectListItem>();
            var nganhList = nganhRepos.LayNganhDaoTao();
            foreach (var nganhItem in nganhList)
            {
                SelectListItem item = new SelectListItem()
                {
                    Text = nganhItem.TenNganh,
                    Value =nganhItem.NganhID
                };
                quyDinh.NganhList.Add(item);
            }
            quyDinh.NienKhoaList = new List<SelectListItem>();
            var nienKhoaList = nienKhoaRepos.LayTatCaNienKhoa();
            foreach (var nienKhoaItem in nienKhoaList)
            {
                SelectListItem item = new SelectListItem()
                {
                    Text = nienKhoaItem.TenNienKhoa,
                    Value =nienKhoaItem.NienKhoaID.ToString()
                };
                quyDinh.NienKhoaList.Add(item);
            }

            //gridview
            heDaoTaoList = chuanDauRaRepos.LayHeDaoTao().Distinct();
            nganhList = chuanDauRaRepos.LayNganh().Distinct();
            nienKhoaList = chuanDauRaRepos.LayNienKhoa().Distinct();
            quyDinh.ChuanDauRaListTheoHeNganhNienKhoa = new List<ChuanDauRaTNChung>();
            int soLuongMax = 0;
            ChuanDauRa ChuanDauRaEdit=null;
            if(ChuanDauRaEditID!=0 && ChuanDauRaEditID!=null)
            {
                ChuanDauRaEdit =new ChuanDauRa();
                ChuanDauRaEdit = chuanDauRaRepos.LayChuanDauRaTheoID(ChuanDauRaEditID);
            }
            foreach (var heDaoTaoItem in heDaoTaoList)
            {
                foreach (var nganhItem in nganhList)
                {
                    foreach (var nienKhoaItem in nienKhoaList)
                    {
                        if (chuanDauRaRepos.KiemTraChuanDauRa(heDaoTaoItem.HeDaoTaoID, nganhItem.NganhID, nienKhoaItem.NienKhoaID))
                        {
                            
                            ChuanDauRaTNChung chung = new ChuanDauRaTNChung()
                            {
                                HDTao = heDaoTaoItem,
                                Nganh = nganhItem,
                                NKhoa = nienKhoaItem,
                                ChuanDauRaList = chuanDauRaRepos.LayChuanDauRa(nganhItem.NganhID,nienKhoaItem.NienKhoaID,heDaoTaoItem.HeDaoTaoID).ToList()
                            };
                            //if (ChuanDauRaEdit != null && ChuanDauRaEdit.HeDaoTaoID.Equals(heDaoTaoItem.HeDaoTaoID) && ChuanDauRaEdit.NganhID.Equals(nganhItem.NganhID) && ChuanDauRaEdit.NienKhoaID.Value == nienKhoaItem.NienKhoaID)
                            if (CheckedSua && ChuanDauRaEdit != null && ChuanDauRaEdit.HeDaoTaoID.Equals(heDaoTaoItem.HeDaoTaoID) && ChuanDauRaEdit.NganhID.Equals(nganhItem.NganhID) && ChuanDauRaEdit.NienKhoaID.Value == nienKhoaItem.NienKhoaID)
                            {
                                chung.ShowEdit = true;
                                //ChuanDauRaEditID = 0;
                            }
                            if (CheckSave)
                            {
                                chung.ShowEdit = false;
                                CheckSave = false;
                                CheckCancel = false;
                                CheckedSua = false;
                                //ChuanDauRaEditID = 0;
                            }
                            if (CheckCancel)
                            {
                                chung.ShowEdit = false;
                                CheckCancel = false;
                                CheckSave = false;
                                CheckedSua = false;
                            }
                            
                            quyDinh.ChuanDauRaListTheoHeNganhNienKhoa.Add(chung);
                            if (soLuongMax < chung.ChuanDauRaList.Count)
                                soLuongMax = chung.ChuanDauRaList.Count;
                        }
                    }
                }
            }
            quyDinh.SLQuyDinhTN = soLuongMax;
            //if(quyDinh.Edit==null || !checkedSua)
            //    quyDinh.Edit = false;
            //checkedSua = false;
            
            return View(quyDinh);
        }

        static bool CheckSave = false;
        static bool CheckCancel = false;
        [HttpPost]
        public ActionResult TaoQuyDinhChuanDauRa(FormCollection form)
        {
            if (Publics.adminDangNhap == null)
                return RedirectToAction("Index","TrangChu_Admin");

            if (Request.Params.AllKeys.FirstOrDefault(key => key.Equals("subSave")) != null)//save quy dinh
            {
                CheckSave = true;
                string txtMoTaEdit = form["txtMoTaEdit"];
                string txtGiaTriEdit = form["txtGiaTriEdit"];
                int intParse=0;
                if (!int.TryParse(txtGiaTriEdit, out intParse))
                {
                    ViewData["LoiNhapLieu"] = "alert('Giá trị của quy định chỉ được nhập số. Vui lòng thử lại!')";
                    return View(ViewData["LoiNhapLieu"]);
                }

                string[] txtMoTaEditArray = txtMoTaEdit.Split(',');
                string[] txtGiaTriEditArray = txtGiaTriEdit.Split(',');
                
                ChuanDauRa chuanDauRaUpdate = chuanDauRaRepos.LayChuanDauRaTheoID(ChuanDauRaEditID);
                List<ChuanDauRa> chuanDauRaList = chuanDauRaRepos.LayChuanDauRa(chuanDauRaUpdate.NganhID, chuanDauRaUpdate.NienKhoaID.Value, chuanDauRaUpdate.HeDaoTaoID).ToList();
                bool updatedFlag = false;
                int i = 0;
                foreach (var chuanItem in chuanDauRaList)
                {
                    for (; i < txtMoTaEditArray.Count(); i++)
                    {
                        for (int j = 0; j < txtGiaTriEditArray.Count(); j++)
                        {
                            if (i == j)
                            {
                                chuanItem.MoTa = txtMoTaEditArray[i];
                                chuanItem.GiaTri = txtGiaTriEditArray[i];
                                chuanDauRaRepos.UpdateChuanDaura(chuanDauRaUpdate);
                                updatedFlag = true;
                                break;
                            }
                        }
                        if (updatedFlag)
                        {
                            updatedFlag = false;
                            i++;
                            break; }
                    } 
                }
                

                return RedirectToAction("TaoQuyDinhChuanDauRa");
            }
            else
                CheckSave = false;

            if (Request.Params.AllKeys.FirstOrDefault(key => key.Equals("subCancel")) != null)//save quy dinh
            {
                CheckCancel = true;
                return RedirectToAction("TaoQuyDinhChuanDauRa");
            }
            else
                CheckCancel = false;

            //chuan dau ra
            List<ChuanDauRa> quydinhList = new List<ChuanDauRa>();
            var login = Request.Params.AllKeys.FirstOrDefault(key => key.Equals("saveSubmit"));
            if (login != null)
            {
                string heDaoTao = form["ddlHeDaoTao"];
                string nganh = form["ddlNganh"];
                string nienKhoa = form["ddlNienKhoa"];
                for (int i = 1; i <= 10; i++)
                {
                    string temp = "TenQuyDinh" + i.ToString();
                    string TenQuyDinh = form[temp];
                    temp = "GiaTriQuyDinh" + i.ToString();
                    string GiaTriQuyDinh = form[temp];
                    temp = "txtMonHocID" + i.ToString();

                    int intParse = 0;
                    if (!int.TryParse(GiaTriQuyDinh, out intParse))
                    {
                        quyDinh.ViewLoi = true;
                        //ViewData["LoiNhapLieu"] = "alert('Giá trị của quy định chỉ được nhập số. Vui lòng thử lại!')";
                        return View(quyDinh);
                    }

                    string MonHocID = form[temp];
                    temp = "radTCQuyDinh" + i.ToString();
                    string TCBool = form[temp];
                    temp = "radDTBQuyDinh" + i.ToString();
                    string DTBBool = form[temp];
                    bool tc = false, dtb = false;
                    if (TCBool != null)
                        tc = true;
                    if (DTBBool != null)
                        dtb = true;
                    if (TenQuyDinh == "" && GiaTriQuyDinh == "" && MonHocID == "" && !tc && !dtb)
                        continue;
                    ChuanDauRa item = new ChuanDauRa();
                    item.MoTa = TenQuyDinh;
                    item.GiaTri = GiaTriQuyDinh;
                    var MonHocSplit = MonHocID.Split(',');
                    List<string> MonHocList = new List<string>();
                    foreach (var splitItem in MonHocSplit)
                    {
                        if (splitItem != "")
                        {
                            MonHocList.Add(splitItem);
                        }
                    }

                    if (tc)
                        item.Loai = 0;
                    if (dtb)
                        item.Loai = 1;
                    item.HeDaoTaoID = heDaoTao;
                    item.NganhID = nganh;
                    item.NienKhoaID = int.Parse(nienKhoa);
                    if (MonHocList.Count > 0)
                    {
                        foreach (var monHocItem in MonHocList)
                        {
                            ChuanDauRa ChuanDauRatemp = new ChuanDauRa();
                            ChuanDauRatemp.HeDaoTaoID = item.HeDaoTaoID;
                            ChuanDauRatemp.Loai = item.Loai;
                            ChuanDauRatemp.MoTa = item.MoTa;
                            ChuanDauRatemp.NganhID = item.NganhID;
                            ChuanDauRatemp.NienKhoaID = item.NienKhoaID;
                            ChuanDauRatemp.GiaTri = item.GiaTri;

                            ChuanDauRatemp.MonHocID = monHocItem;
                            quydinhList.Add(ChuanDauRatemp);
                        }
                    }
                    else
                    {
                        item.MonHocID = null;
                        quydinhList.Add(item);
                    }

                }
                //foreach (var item in quydinhList)
                chuanDauRaRepos.ThemChuanDauRa(quydinhList);
                quyDinh.ViewThanhCong = true;
                return RedirectToAction("TaoQuyDinhChuanDauRa");
                
            }
            else
                quyDinh.ViewThanhCong = false;
                

            //luan van/TTTN
            var LV = Request.Params.AllKeys.FirstOrDefault(key => key.Equals("subSaveLV"));
            if (LV != null)
            {
                string nganh = form["ddlNganh_LV"];
                string heDaoTao = form["ddlHeDaoTao_LV"];
                string nienKhoa = form["ddlNienKhoa_LV"];
                string tenQDLV = form["txtTenQuyDinhLV"];
                string selectedLV = form["radLuanVan"];
                string selectedTTTN = form["radTTTN"];
                int lv_tttn;
                if (selectedLV != null)
                    lv_tttn = 0; //la luan van
                else
                    lv_tttn = 1; //la tttn
                string tinChiTL = form["txtSoTCTL"];
                string tinChiNo = form["txtSoTCTLNo"];

                string dtbTL = form["txtDTBTL"];
                string dtbCoSo = form["txtDTBCoSo"];
                string dtbNganh = form["txtDTBNganh"];
                string dtbChuyenNganh = form["txtDTBChuyenNganh"];
                string dtb3Khoi = form["txtDTB3Khoi"];
                string monHocCotLoi = form["txtMonHocID"];
                string monHocTienQuyet = form["txtMonHocIDTienQuyet"];
                string monHocTruoc = form["txtMonHocIDTruoc"];
                string diemTTTN = form["txtDiemTTTN"];
                string diemTienLV = form["txtDiemTienLV"];
                string slsv = form["txtPhanTramSLSVDuDK"];
                float floatParse;
                int intParse = 0;
                if (!int.TryParse(tinChiTL, out intParse) || !int.TryParse(tinChiNo, out intParse)
                    || !float.TryParse(dtbTL, out floatParse) || !float.TryParse(dtbCoSo, out floatParse) ||
                    !float.TryParse(dtbNganh, out floatParse) || !float.TryParse(dtb3Khoi, out floatParse) ||
                    !float.TryParse(diemTTTN, out floatParse) || !float.TryParse(dtbChuyenNganh, out floatParse) ||
                    !int.TryParse(slsv, out intParse) || !float.TryParse(dtb3Khoi, out floatParse))
                {
                    quyDinh.ViewLoi = true;
                    //ViewData["LoiNhapLieu"] = "";
                    return View(quyDinh);
                }

                QuyDinhLuanVan_TTTN entity = new QuyDinhLuanVan_TTTN();
                entity.CacMonHocKhongDuocNo = monHocCotLoi;
                entity.CacMonHocTienQuyet = monHocTienQuyet;
                entity.CacMonHocTruoc = monHocTruoc;
                if (diemTTTN != null && diemTTTN != "")
                    entity.DiemThucTapTotNghiep = double.Parse(diemTTTN);
                if (diemTienLV != null && diemTienLV != "")
                    entity.DiemTienLuanVan = double.Parse(diemTienLV);
                if (dtbTL != null && dtbTL != "")
                    entity.DTBTLChung = double.Parse(dtbTL);
                if (dtbChuyenNganh != null && dtbChuyenNganh != "")
                    entity.DTBTLKhoiChuyenNganh = double.Parse(dtbChuyenNganh);
                if (dtb3Khoi != null && dtb3Khoi != "")
                    entity.DTBTLKhoiCoSoKhoiNganhKhoiChuyenNganh = double.Parse(dtb3Khoi);
                if (dtbCoSo != null && dtbCoSo != "")
                    entity.DTBTLKhoiCoSoNganh = double.Parse(dtbCoSo);
                if (dtbNganh != null && dtbNganh != "")
                    entity.DTBTLKhoiNganh = double.Parse(dtbNganh);
                entity.Loai = lv_tttn;
                if (slsv != null && slsv != "")
                    entity.SoLuongSVToiDaDuDKTheoChuyenNganh = int.Parse(slsv);
                if (tinChiTL != null && tinChiTL != "")
                    entity.SoTinChiTLChung = int.Parse(tinChiTL);
                if (tinChiNo != null && tinChiNo != "")
                    entity.SoTinChiToiDaNo = int.Parse(tinChiNo);
                entity.TenQuyDinh = tenQDLV;

                entity.NganhID = nganh;
                entity.HeDaoTaoID = heDaoTao;
                entity.NienKhoaID = int.Parse(nienKhoa);

                if (qDinhLV_TTTNRepos.KiemTraQuyDinhLV_TTTNTheo(nganh, heDaoTao, int.Parse(nienKhoa), lv_tttn))
                {

                    qDinhLV_TTTNRepos.Update(entity);
                }
                else
                    qDinhLV_TTTNRepos.ThemMoi(entity);
                quyDinh.ViewThanhCongLV = true;

            }
            else
                quyDinh.ViewThanhCongLV = false;
                
            

            return View(quyDinh);
        }

        static bool CheckedSua = false;
        static int ChuanDauRaEditID { get; set; }
        public ActionResult SuaQuyDinh(int chuanID = 1)
        {
            if (Publics.adminDangNhap == null)
                return RedirectToAction("Index", "TrangChu_Admin");
            //checkedSua = true;
            //quyDinh.Edit = true;
            
            //ChuanDauRa chuan = chuanDauRaRepos.LayChuanDauRaTheoID(chuanID);

            ChuanDauRaEditID = chuanID;
            CheckedSua = true;

            return RedirectToAction("TaoQuyDinhChuanDauRa","Admin");
        }
        

        public ActionResult XoaQuyDinh(int chuanID=0)
        {
            if(Publics.adminDangNhap==null)
                return RedirectToAction("Index", "TrangChu_Admin");
            ChuanDauRa chuan = chuanDauRaRepos.LayChuanDauRaTheoID(chuanID);
            chuanDauRaRepos.XoaChuanDauRa(chuan);
            return RedirectToAction("TaoQuyDinhChuanDauRa", "Admin");
        }

        

        #endregion

        public ActionResult NhapDLChat()
        {
            return View();
        }

        [HttpPost]
        public ActionResult NhapDLChat(FormCollection form)
        {
            var login = Request.Params.AllKeys.FirstOrDefault(key => key.Equals("saveSubmit"));
            if (login != null)
            {
                for (int i = 1; i <= 10; i++)
                {
                    string temp = "txtTuKhoa" + i.ToString();
                    string tuKhoa = form[temp];
                    temp = "txtCauHoi"+i.ToString();
                    string cauHoi = form[temp];
                    temp = "txtTraLoi"+i.ToString();
                    string traLoi = form[temp];
                    var path = System.Web.HttpContext.Current.Server.MapPath("/DataChatbot/" + tuKhoa + ".aiml");
                    
                    StreamWriter writer = null;
                    if (System.IO.File.Exists(path))
                    {
                        writer = System.IO.File.AppendText(path);
                        writer.Write("abc");
                    }
                }
            }
            return View();
        }

        public ActionResult ThongKe()
        {
            return View();
        }

        #region Import DiemDGRL

        public ActionResult ImportDiemDGRL()
        {
            var login = Request.Params.AllKeys.FirstOrDefault(key => key.Equals("btnChon"));
            ImportDiemRLModel importDiem = new ImportDiemRLModel();
            if (login != null)
            {
                //ExecuteOpenFileDialog(importDiem);
            }

            return View();
        }

        #region Khai báo
        //private string SelectedSheetName
        //{
        //    get
        //    {
        //        string s = "";
        //        if (Session["SelectedSheetName"] != null)
        //            s = Session["SelectedSheetName"].ToString();
        //        return s;
        //    }
        //    set
        //    {
        //        Session["SelectedSheetName"] = value;
        //    }
        //}

        ///// <summary>
        ///// Chuỗi nối cột excel với cột sql
        ///// </summary>
        //protected string SplitMap { get { return CoVanHocTapData.Infrastructure.ExcelController.SplitMap; } }
    
        //private string DataFile { get { return Session[CoVanHocTapData.Infrastructure.ConstValue.DataFile].ToString(); } }
        //[
        //Bindable(true),
        //Category("Tables"),
        //DefaultValue(""),
        //Description("Danh sách các bảng sẽ dùng để import dữ liệu, mỗi bảng cách nhau dấu , ví dụ: Lop,Khoa"),
        //DesignerSerializationVisibility(
        //    DesignerSerializationVisibility.Content),
        //PersistenceMode(PersistenceMode.Attribute)
        //]
        //public string Tables
        //{
        //    get
        //    {
        //        object o = ViewData["Tables"];
                
        //        if (o == null)
        //            return "";
        //        return o.ToString();
        //    }
        //    set { ViewData["Tables"] = value; }
        //}
        //#endregion

        

        //private List<DataColumn> ColumnSql
        //{
        //    get
        //    {
        //        List<DataColumn> col = new List<DataColumn>();
        //        List<string> colName = new List<string>();
        //        if (Tables == "")
        //            return col;
        //        string[] tbs = Tables.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
        //        foreach (string s in tbs)
        //        {
        //            List<DataColumn> col2 = DataBaseController.Columns(s);
        //            foreach (DataColumn c in col2)//bỏ những cột đã có, những cột tự tăng, readonly
        //                if (!c.AutoIncrement && !c.ReadOnly && !colName.Contains(c.ColumnName))
        //                {
        //                    colName.Add(c.ColumnName);
        //                    col.Add(c);
        //                }
        //        }
        //        return col;
        //    }
        //}

        

        //#region Đóng tạm
        //private void LoadDataColumn(DataTable tb)//ASPExcelController ctrl, int idxSheet)
        //{
        //    ImportDiemRLModel importDiem = new ImportDiemRLModel();
        //    List<string> map = new List<string>();
        //    List<string> excelCols = new List<string>();
        //    //nạp cột nguồn
        //    if (tb != null)
        //    {
        //        //DataTable tb = ctrl.Sheets[idxSheet];
        //        for (int i = 0; i < tb.Columns.Count; i++)
        //        {
        //            //lsNguon.Items.Add(tb.Rows[0][i].ToString() + ":" + i);
        //            excelCols.Add(tb.Columns[i].ColumnName);
        //        }
        //    }
        //    else
        //    {
        //        StreamReader strem = new StreamReader(DataFile, System.Text.Encoding.UTF8);
        //        string line = strem.ReadLine();
        //        strem.Close();
        //        string[] clm = line.Split("\t".ToCharArray(), StringSplitOptions.None);
        //        for (int i = 0; i < clm.Length; i++)
        //        {
        //            //lsNguon.Items.Add(clm[i] + ":" + i);
        //            excelCols.Add(clm[i]);
        //        }
        //    }
        //    //nạp giải thích cho cột dữ liệu
        //    //LanguageController _lang = new LanguageController(Server.MapPath("~/admin/language.txt"));
        //    //nạp cột đích
        //    List<DataColumn> cols = ColumnSql;
        //    for (int i = 0; i < cols.Count; )
        //    {
        //        DataColumn c = cols[i];
        //        string t = c.ColumnName,//.ToLower(),
        //            colRemove = "";
        //        foreach (string ecol in excelCols)
        //            if (ecol.ToLower() == t.ToLower())
        //            {
        //                colRemove = ecol;
        //                map.Add(ecol + SplitMap + c.ColumnName);
        //                break;
        //            }

        //        if (colRemove != "")
        //        {
        //            excelCols.Remove(colRemove);
        //            cols.RemoveAt(i);
        //        }
        //        else
        //        {
        //            SelectListItem item = new SelectListItem()
        //            {
        //                Text = c.ColumnName,
        //                Value=i.ToString()
        //            };
        //            importDiem.CotDich.Add(item);
        //            //lsDich.Add(c.ColumnName);
        //            i++;
        //        }
        //    }
        //    foreach (string ecol in excelCols)
        //    {
        //        //lsNguon.Items.Add(ecol);
        //        SelectListItem item = new SelectListItem()
        //        {
        //            Text = ecol,
        //            Value = ecol
        //        };
        //        importDiem.CotNguon.Add(item);
        //    }
        //    //tìm các cột tương ứng giữa nguồn và đích
        //    //lsKetQua.Items.Clear();
        //    importDiem.CotKQ.Clear();
        //    foreach (string m in map)
        //    {
        //        //lsKetQua.Items.Add(m);
        //        SelectListItem item = new SelectListItem()
        //        {
        //            Text =m,
        //            Value =m
        //        };
        //        importDiem.CotKQ.Add(item);
        //    }
        //}

        ///// <summary>
        ///// nạp các sheet và các cột dữ liệu nếu có.
        ///// </summary>
        //private void LoadInitData()
        //{
        //    //if (IsPostBack)
        //    //    return;
        //    if (DataFile.EndsWith(".xls"))
        //    {
        //        //try
        //        {
        //            CoVanHocTapData.Infrastructure.ExcelController ctr = new CoVanHocTapData.Infrastructure.ExcelController(DataFile);
        //            List<string> sheets = ctr.SheetsName;
        //            string sheetname = SelectedSheetName;
        //            if (sheetname == "" || !sheets.Contains(sheetname))
        //                sheetname = sheets[0];
        //            SelectedSheetName = sheetname;
        //            /*ASPExcelController ctr = new ASPExcelController(DataFile);
        //            DataTableCollection sheets = ctr.Sheets;
        //            cboSheets.Items.Clear();
                
        //            foreach (DataTable s in sheets)
        //            {
        //                cboSheets.Items.Add(new ListItem(s.TableName, sheets.IndexOf(s).ToString()));
                    
        //            }*/

        //            //foreach (string s in sheets)
        //            //    cboSheets.Add(s);
        //            //LoadDataColumn(ctr[sheetname]);
        //            //ctr.Close();
        //            //lblRequireFields = "Các thông tin bắt buộc: " + RequireFields + "<br/>";
        //        }
        //        //catch (Exception ex)
        //        {
        //            // Session[ConstValue.Message] = "Lỗi xử lý: " + ex.Message;
        //            // Publics.RedirectAdmin();
        //        }
        //    }
        //    else
        //    {
        //        //cboSheets.Enabled = false;
        //        //cboSheets.Items.Clear();
        //        //LoadDataColumn(null);
        //    }

        //}
        #endregion

        //private void ExecuteOpenFileDialog(ImportDiemRLModel importDiem)
        //{
        //    //KillExcel();
        //    //ListSheet.Clear();
        //    importDiem.SheetNguon.Clear();

        //    //if (flagOK)
        //    //    KillExcel();
        //    var dialog = new OpenFileDialog();
        //    dialog.DefaultExt = ".xls|xlsx";
        //    dialog.Filter = "Excel Document (xls,xlsx)|*.xls;*.xlsx";
        //    dialog.ShowDialog();

        //    SelectedPath = dialog.FileName;
        //    ExcelFileName = Path.GetFileName(SelectedPath);
        //    string _extendExcel = Path.GetExtension(ExcelFileName);

        //    if (!SelectedPath.Replace(" ", "").Equals(""))
        //    {
        //        if (_extendExcel.Equals(".xlsx", StringComparison.CurrentCultureIgnoreCase))
        //        {
        //            _excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""; //getExcelFileName

        //        }
        //        else if (_extendExcel.Equals(".xls", StringComparison.CurrentCultureIgnoreCase))
        //        {
        //            _excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""";
        //        }

        //        bool flagExcel = false;
        //        System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcesses();
        //        for (int j = 0; j < procs.Length; j++)
        //        {
        //            if (procs[j].ProcessName == "EXCEL")
        //            {
        //                //procs[j].Kill();
        //                flagExcel = true;
        //                break;
        //            }
        //        }

        //        if (flagExcel)
        //        {
        //            //MessageBox.Show("Vui lòng tắt excel đang mở và chọn lại file import!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Stop);
        //            flagOK = true;
        //            SelectedPath = "";
        //            ListSheet.Clear();
        //            SourceListBox.Clear();

        //            //DesListBox.Clear();
        //            MapListBox.Clear();

        //            return;
        //        }

        //        using (OleDbConnection oleDbConnection = new OleDbConnection(string.Format(_excelConnectionString, SelectedPath)))
        //        {
        //            oleDbConnection.Open();
        //            DataTable dataSchema = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);//return detail of sheets in excel
        //            DataTable _dt = dataSchema;
        //            foreach (DataRow item in _dt.Rows)
        //            {
        //                string ex = item.ItemArray[2].ToString();
        //                ListSheet.Add(ex.Replace("$", ""));
        //                //var ex = ListSheet.Rows[0].ItemArray[2];
        //            }
        //            SelectSheet = ListSheet.FirstOrDefault();
        //            oleDbConnection.Close();
        //            //RefeshSourceListBox();
        //        }



        //    }
        //    //}
        //    //catch
        //    //{
        //    //    MessageBox.Show("Dữ liệu import không phù hợp");
        //    //}
        //}

        #endregion
    }
}
